package main

import (
	"fmt"
	"math"
	"strings"
)

/*
	作业:
	func BinaryFormat(n int32) string {
		a := uint32(n)  //有符号转为无符号
		sb := strings.Builder{}  //把多个短字符串拼接成一个长字符串
		c := uint32(math.Pow(2, 31))  //最高位是1，其他位全是0
		for i := 0; i < 32; i++ {
		if填                空 {
			sb.WriteString("1")   //往sb后面拼接“1”
		} else {
			sb.WriteString("0") //往sb后面拼接“0”
		}
		填                空
		}
		return sb.String()//返回长度为32的字符串
}
*/
func BinaryFormat(n int32) string {
	a := uint32(n)
	sb := strings.Builder{}
	c := uint32(math.Pow(2, 31))
	for i := 0; i < 32; i++ {
		if a&c > 0 {
			sb.WriteString("1")
		} else {
			sb.WriteString("0")
		}
		c >>= 1
	}

	return sb.String()
}

func main() {

	fmt.Printf("%s\n", BinaryFormat(-254))
	fmt.Printf("%s\n", BinaryFormat(254))

}
